public class Liczba {
    private int liczba;

    Liczba() {
        this.liczba = 0;
    }

    Liczba(int liczba) throws IllegalArgumentException {
        if (liczba < 0)
            throw new IllegalArgumentException("Liczba nie może być ujemna.");
        this.liczba = liczba;
    }

    public void setLiczba(int newLiczba) throws IllegalArgumentException {
        if (newLiczba < 0)
            throw new IllegalArgumentException("Liczba nie może być ujemna.");
        this.liczba = newLiczba;
    }

    public int returnLiczba() {
        return liczba;
    }

    public String LiczbaAtBase(int base) throws IllegalArgumentException {
        if ((base < 2) || (base > 17))
            throw new IllegalArgumentException("Baza wykracza poza zakres [2, 17].");

        String StringAtBase = "";
        int liczba = this.liczba;

        while (liczba > 0) {
            StringAtBase = StringAtBase + (liczba % base);
            liczba = liczba / base;
        }

        StringAtBase = new StringBuilder(StringAtBase).reverse().toString();
        StringAtBase = "Base[" + base + "] = " + StringAtBase;

        return StringAtBase;
    }

    public String[] LiczbyAtBases() {
        String[] LiczbyAtBases = new String[16];
        for (int base = 2; base <= 17; base++) {
            LiczbyAtBases[base-2] = LiczbaAtBase(base);
        }

        return LiczbyAtBases;
    }

    public static void main(String[] args) {
        Liczba l = new Liczba(20);
        System.out.println(l.LiczbaAtBase(17));

        for (String str: l.LiczbyAtBases()) {
            System.out.println(str);
        }
    }
}

